Video storytelling based on conditions determined from a business object

ABSTRACT

A method, system, and computer program product for data presentation using video. Embodiments commence upon invoking a computer-implemented task to receive a user credential, which credential is used to determine and access one or more initial search corpora. Information in the initial search corpora are analyzed to determine at least one attribute pertaining to the information. The attribute, such as a performance metric or attribute, is used to evaluate various scene conditions comprising one or another forms of decision criteria based on the attribute or performance metric. A scene condition is then used to determine the content of a particular next scene, wherein the content can comprise new information, which in turn is used in evaluation of another scene condition to determine yet another next scene. The process continues iteratively or recursively wherein determining the next scene is based at least in part on the scene condition of another scene.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is the continuation of U.S. patent application Ser. No.14/577,894, filed on Dec. 19, 2014, and entitled “VIDEO STORYTELLINGBASED ON CONDITIONS DETERMINED FROM A BUSINESS OBJECT,” which is herebyincorporated by reference in its entirety.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

FIELD

This disclosure relates to the field of data presentation using videoand more particularly to techniques for generating multi-scene videoclips based on a conditional logic graph.

BACKGROUND

Consumers of information rely more and more on video as a primary meansof ingesting information. Some attempts at automatically generatingvideo from text produce a series of images that correspond more-or-lessto a series of paragraphs. In some cases, the series of images producedincludes a voiceover generated using an automatic text-to-speechprocessor. For example, some early attempts take the form of a series ofimages stitched together into a video stream, which each image beingdisplayed for a duration of roughly the same amount of time elapsedwhile the text-to-speech processor is uttering the text on the page.This technique can be used by certain physically-impaired people inorder to make information more accessible. However, such a technique isdeficient at least in that the relevance of the information to theconsumer of the information presented is limited to the nature of theclick or selection. For example, even though such a legacy technique canbe used to render a Wikipedia article, the interaction with the media islimited to merely identifying the Wikipedia article. The video generatedusing this legacy technique merely narrates the Wikipedia article.

Another legacy technique attempts to relate information to theinformation consumer by automatically selecting information to presentin video form based on the user's identity. For example, based on auser's identity or account number, that user's account information(e.g., the current month's phone bill) can be presented as a series ofimages, where each image is a rendering of a particular portion of thephone bill. This legacy technique is still deficient at least in that itfails to process conditions to determine under what situations one setor another set of scenes of the video might be presented.

What is needed are techniques for generating and presenting videos thatare constructed differently on the basis of information found in orderived from a particular corpus. None of the aforementioned legacyapproaches achieve the capabilities of the herein-disclosed techniquesfor generating multi-scene video clips based on a conditional logicgraph. Therefore, there is a need for improvements.

SUMMARY

The present disclosure provides an improved method, system, and computerprogram product suited to address the aforementioned issues with legacyapproaches. More specifically, the present disclosure provides adetailed description of techniques used in methods, systems, andcomputer program products for generating multi-scene video clips basedon a conditional logic graph. The claimed embodiments address theproblem of automatically generating a video story. More specifically,some claims are directed to approaches for selecting a next scene basedon conditions determined from earlier scenes, which claims advance thetechnical fields for addressing the problem of automatically generatinga video story, as well as advancing peripheral technical fields. Someclaims improve the functioning of multiple systems within the disclosedenvironments.

Exemplary embodiments commence upon invoking a computer-implemented taskto receive a user credential, which credential is used to determine andaccess one or more initial search corpora. Information in the initialsearch corpora are analyzed to determine at least one attributepertaining to the information. The attribute (e.g., codified as aquantified value or a Boolean value) is used to evaluate various sceneconditions (e.g., comprising one or another forms of decision criteria).The scene condition is used to determine the content of a particularnext scene, wherein the content can comprise new information, which inturn is used to determine (e.g., based on a scene condition) yet anothernext scene. The process continues iteratively or recursively, or forwardor backward, wherein determining a particular scene is based at least inpart on a scene condition of another scene.

Further details of aspects, objectives, and advantages of the disclosureare described below and in the detailed description, drawings, andclaims. Both the foregoing general description of the background and thefollowing detailed description are exemplary and explanatory, and arenot intended to be limiting as to the scope of the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The drawings described below are for illustration purposes only. Thedrawings are not intended to limit the scope of the present disclosure.

FIG. 1A depicts an environment in which implementations of systems forgenerating multi-scene video clips based on a conditional logic graphcan operate.

FIG. 1B1 depicts a decision graph used for generating multi-scene videoclips based on conditional logic, according to some embodiments.

FIG. 1B2 depicts a decision graph used for evaluating conditions used ingenerating multi-scene video clips, according to some embodiments.

FIG. 1C depicts a graph processor used for processing nodes, edges andconditions when generating multi-scene video clips, according to oneembodiment.

FIG. 2 presents a user interface for editing a template as used insystems for generating multi-scene video clips based on conditionallogic, according to some embodiments.

FIG. 3 presents an editing screen used for stitching together videoscenes when generating multi-scene video clips based on conditionallogic, according to an embodiment.

FIG. 4 depicts an example of a use model implemented in systems thatgenerate multi-scene video clips based on a conditional logic graph,according to an embodiment.

FIG. 5 is a block diagram of a system, according to some embodiments.

FIG. 6 depicts exemplary architectures of components suitable forimplementing embodiments of the present disclosure, and/or for use inthe herein-described environments.

DETAILED DESCRIPTION

Some embodiments of the present disclosure address the problem ofautomatically generating a video story and some embodiments are directedto approaches for selecting a next scene based on conditions determinedfrom earlier scenes. More particularly, disclosed herein and in theaccompanying figures are exemplary environments, methods, and systemsfor generating multi-scene video clips based on a conditional logicgraph.

Overview

Information consumers seek relevance. Often the information consumer canquite precisely articulate what information might be relevant to them,and in some cases an information consumer can describe their meaning ofrelevance in a set of concrete and unambiguous statements. For example,an information consumer might formulate a directive, “Give me a dailybriefing that includes a chart with total sales this month, and if salesto date exceed the quota for the same month, then give me another chartwith the breakdown by product.” Such a directive might be uttered to asubordinate, or it might be provided to a computer-implemented systemthat can carry out the directive. Such a computer-implemented system canfurther process a corpus of information so as to carry out a largenumber of rules or directives, and in some situations, information to bepresented in the video can be pre-processed so as to present theinformation in a sequence that provides for successive disclosure (e.g.,overviews of information followed by detailed analysis).

In some settings, the corpus of information from which user-relevantinformation is retrieved can be dependent on the user himself (e.g., asocial security number), and/or the corpus of information from whichuser-relevant information is retrieved can be dependent oncharacteristics of the user (e.g., role in an organization).

This disclosure herein presents the user-relevant information as astitched-together video to present a meaningful story to the user. Oncea set of computer-readable directives has been established (e.g., “Giveme a daily briefing that includes a chart with total sales this month”),the corpora are accessed upon user demand, and/or, the corpora arescanned periodically. The processes for collecting information fromcorpora, then generating video clips based on the collected informationand conditional graphs or templates, and then stitching together thevideo clips requires no further user interaction. In some cases onepiece of user-relevant information is used to query for furtheruser-relevant information to retrieve second and Nth bits ofuser-relevant information. The herein-disclosed system automaticallygenerates the story, based on a given set of subject matter and/orcriteria (e.g., key performance indicators). The disclosed systemidentifies an area corresponding to a given set of subject matter and/orcriteria and uses various forms of statistical analysis to determinescope and relevance. Variances from expectation (e.g., problems) thatare deemed as related to the given set of subject matter and/or criteria(e.g., too many employees are leaving the company), may invoke furtherqueries to structured or unstructured data, to determine what factorsare relevant, possibly including determining a cause or causes of thevariance. In some cases there are known solutions to an identifiedproblem, and the disclosed system emits one or more known solutions toadvise the user as to a range of potential solutions. Once sufficientuser-relevant information has been gathered, the information isformatted into scenes comprising video clips and/or animations, and/orimages (e.g., charts). A series of clips, animations and images arestitched together into an animated video sequence, possibly includingtransitions between scenes. Templates including user-configuredtemplates can be used to present an initial set of constraints orformats for presentation. Templates can also be used as a starting pointfor editing a set of rules, and/or editing a decision tree or othergraph. A template itself can be user-edited, and some embodimentsprovide a template editor.

Some embodiments of the disclosed system runs continuously, and picksout potential problems (e.g., variance from expectation). Some userconfigurations emit alerts. A user can configure aspects such as scope,depth of analysis and formats of presentation using one or more userinterfaces (UIs). A system for initial configuration, running andviewing is presented in the following figures.

Definitions

Some of the terms used in this description are defined below for easyreference. The presented terms and their respective definitions are notrigidly restricted to these definitions—a term may be further defined bythe term's use within this disclosure. The term “exemplary” is usedherein to mean serving as an example, instance, or illustration. Anyaspect or design described herein as “exemplary” is not necessarily tobe construed as preferred or advantageous over other aspects or designs.Rather, use of the word exemplary is intended to present concepts in aconcrete fashion. As used in this application and the appended claims,the term “or” is intended to mean an inclusive “or” rather than anexclusive “or.” That is, unless specified otherwise, or is clear fromthe context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A, X employs B, or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. The articles “a” and “an” as used in thisapplication and the appended claims should generally be construed tomean “one or more” unless specified otherwise or is clear from thecontext to be directed to a singular form.

Reference is now made in detail to certain embodiments. The disclosedembodiments are not intended to be limiting of the claims.

Descriptions of Exemplary Embodiments

FIG. 1A depicts an environment 1A00 in which implementations of systemsfor generating multi-scene video clips based on a conditional logicgraph can operate. As an option, one or more instances of environment1A00 or any aspect thereof may be implemented in the context of thearchitecture and functionality of the embodiments described herein.Also, the environment 1A00 or any aspect thereof may be implemented inany desired environment.

As shown in FIG. 1A, the environment includes one or more users (e.g.,user 105) situated at one or more user stations 102. The users accessthe system to operate and interact with an application system. The userstations comprise any type or types of computing station equipment(e.g., a desktop 109, a mobile device 103, workstations, personalcomputers, or remote computing terminals, etc.) that may be used tooperate or interface with the enterprise applications. The user stationcomprises a display device, such as a display monitor or mobile devicescreen, for displaying a user interface to users at the user station.The user station also comprises one or more input devices for the userto provide operational control over the activities of systems withinenvironment 1A00. Such input devices include a mouse or keyboard and canbe used to manipulate a pointing object in a graphical user interfaceand/or to generate user inputs to the enterprise application and/orsocial networking applications.

Users at user stations interact with a scene generator 116 through auser interface 104, such as through a browser or app. The user interface104 facilitates user editing of various components used within theenvironment 1A00. As shown, the user interface 104 is configured toaccess templates 112, and at least one information corpus 114.

As heretofore described, templates are used for generating multi-scenevideo clips, and the shown user interface includes a template editor110. Additionally the user interface 104 can comprise a graph editor 108and a rule editor 106, which editors are further discussed below.

Video scenes can be generated automatically using a scene generator 116,which in turn comprises a rule processor 118, a statistics engine 120,and a graph processor 122. The scene generator is configured to accessstructured data 128 and unstructured data 130 using a database engine126. The database engine is configured to access web data 132 over anetwork.

The scene generator 116, can generate any number of scenes, which scenescan be stitched together into a sequence using a sequence stitcher 124.Stitched-together videos or individual scenes can be played using avideo viewer 125. The scene generator 116, can generate individualscenes based on traversal of a decision graph (see FIG. 1B1). A logicgraph can be traversed using a graph processor 122, and decisions foundin the decision graph can be made based upon rules, some of which rulesmay involve determination of statistical quantities. Any number of rulescan be retrieved from one or more of the templates 112, and/or via anyrules defined in the rule editor 106, and/or rules may be encoded into adecision graph. Any number of rules may be defined in terms ofstatistical quantities, and such statistical quantities can becalculated using a statistics engine 120.

Strictly an example, a rule might be established to look-up or calculatea quantity used in business management. The rule might carry semanticsof the form, “If the corporate employee retention rate is less than 50%,then determine how many employees have left in the reporting period, anddetermine the average wage for comparing with industry standards.” Sucha rule might fire when the retention rate or other key performanceindicator (KPI) falls below a given threshold.

Firing and execution of such a rule, and retrieval of data from one ormore corpora further invoke modules within the scene generator to find atemplate suited for presenting such data as a video scene. A ruleprocessor 118 can process a series of rules found in a rule database, ora rule processor can fire an initial rule, and that initial rule maycause the firing of a second rule, and so on until no further rules arefired in that iteration. At any moment in time, either synchronouslywith the firing of rules, and/or asynchronously with the firing ofrules, a set of scene conditions can be evaluated. Strictly as oneexample, a rule may be formatted in the form: If <event> then <actiontaken>, and/or if <event> then <enter event into a learning model>,and/or if <event> then <action suggested to a scene generator>. In somecases a rule can include multiple forms or formats. For example, a rulecan include multiple clauses such as <action taken to enter intolearning model> and <action suggested to a scene generator>. In somecases, a rule can be of the form if <condition> else <action>.

When a condition evaluates to a certain value (e.g., a TRUE value, anon-null value, etc.) the occurrence of the condition schedules acorresponding scene to be generated by the scene generator. Any numberof potential scenes to be generated and any respective conditions thatmight cause a scene to be generated can be codified into a decisiongraph. FIG. 1B1 depicts one embodiment of such a decision graph.

FIG. 1B1 depicts a decision graph 1B100 used for generating multi-scenevideo clips based on conditional logic. As an option, one or moreinstances of decision graph 1B100 or any aspect thereof may beimplemented in the context of the architecture and functionality of theembodiments described herein. Also, the decision graph 1B100 or anyaspect thereof may be implemented in any desired environment.

As shown in FIG. 1B1, the decision graph comprises a root node (seeSTART 140). An evaluation of the START node (e.g., by graph processor122) can cause the execution of any number of rules (see rule processor118), and the execution of a rule might have the effect that one or moreconditions are detected (e.g., the corporate employee retention wasgreater than 50% yesterday, but it is less than 50% today). Whenexecution of a rule causes or detects a condition, that condition iscompared to conditions pertaining to the evaluated node. In the exampleinstance of decision graph 1B100, the root node has three conditionsattached to it. These conditions (e.g., scene condition 144, scenecondition 146, and scene condition 148) each form an edge to anothernode. As shown, scene condition 144 forms an edge to node1, which node1corresponds to “Scene1,” as shown. The scene condition 146 forms an edgeto node2, which node2 corresponds to “Scene2,” and condition 148 formsan edge to node3, which node3 corresponds to “Scene3.” When a conditionevaluates to a certain value (e.g., a TRUE value, a non-null value,etc.) the occurrence of the condition schedules the scene of theedge-connected node to be generated by the scene generator. It ispossible that multiple condition edges emanate from a given node, and agraph processor can traverse a given decision graph in a depth-first ora breadth-first manner, or in any other order. In some cases, there maybe multiple condition edges emanating from a particular node. Acondition processor determines the presence or occurrence of a givencondition, and an edge processor determines the order in which scenesare to be generated.

A decision graph can be arbitrarily complex, and the codification ofaspects of the decision graph can be rich. For example, a node cancomprise not only a scene name or indication, but also an audiencedescription, and/or a suggested template to use for the scene. An edgecan hold information pertaining to conditions and/or informationpertaining to ordering when generating scenes. Further, a condition canbe described using an arbitrarily complex condition notation, possiblyinvolving any number or complexity of database queries.

FIG. 1B2 depicts a decision graph used for evaluating conditions used ingenerating multi-scene video clips. As shown, scene condition 146 doesnot evaluate to TRUE, and Scene2 is not generated. The evaluation ofconditions of the graph (e.g., scene condition 146) is based on a givenset of subject matter and/or criteria (e.g., key performanceindicators).

Operations corresponding to the node shown as START 140 identifies anarea corresponding to a given set of subject matter and/or criteria, anduses various forms of statistical analysis to identify variances fromexpectation and/or perform other analyses, the results of which are usedto evaluate the edge conditions. For example, if the analysis performedin operations corresponding to the node shown as START 140 quantifiesthat the constitution of the workforce is stable, then scene condition146 evaluates to FALSE, and Scene2 is not generated. Further if Scene2is not generated, as shown, then the analyses associated with Scene2 arenot performed. For example, if the workforce is deemed to be stable(e.g., scene condition 146 evaluates to FALSE) then additionalprocessing to determine the cause of an unstable workforce is notperformed.

FIG. 1C depicts a graph processor used for processing nodes, edges andconditions when generating multi-scene video clips. As an option, one ormore instances of graph processor 1C00 or any aspect thereof may beimplemented in the context of the architecture and functionality of theembodiments described herein. Also, the graph processor 1C00 or anyaspect thereof may be implemented in any desired environment.

As shown within FIG. 1C, the graph processor comprises a node processor152, and edge processor 142, and a condition processor 154. Theaforementioned processors work cooperatively to process a graph so as togenerate a series of video scenes, which are later combined into a videopresentation.

In exemplary cases, the graph processor is situated in an enterpriseapplication setting, and has access to a database engine, which in turncan access any forms of data from the web. In some cases, access to datawithin the database engine 126 is restricted based on a user credential(e.g., a login screen name, a username-password pair, etc.). Such a usercredential can be used to establish security authorizations orrestrictions. In some cases, a credential and/or role (e.g., VP,Director, technical staff, etc.) can be used to determine an initialsearch corpus. A rule might generally specify information to beretrieved, however the combination of a rule and a user credentialand/or role can be used to define an initial search corpus (e.g.,portions of structured data 128 and/or unstructured data 130).

In the course of traversing a decision graph, one or more modules serveto retrieve a first parcel of information (e.g., from an initial searchcorpus). Information from the first parcel of information is used togenerate a first scene. More specifically, information from the firstparcel of information is used to evaluate rules and conditions, and whena condition is satisfied, the edge-connected node is evaluated and thescene is scheduled to be generated and subsequently stitched togetherwith other scenes.

As shown, the graph processor includes an edge processor 142, which canserve to retrieve additional information, possibly using any portion ofthe first parcel of information. Specifically, an edge processor canserve to retrieve a second parcel of information based on any aspect ofthe first parcel if information and/or an evaluation value of at leastone of the conditions. The second parcel of information can be used togenerate a second scene. A flow between scenes (e.g., via theaforementioned ordering and scheduling techniques) can be formed by thegraph processor.

A node and/or any parcel of information may contain enough informationto select a template. An appropriate template can be selected based onthe condition or conditions present at the time the node is encountered,or an appropriate template can be selected based on information found ina parcel of information. A template can be provided as an initialconfiguration of a system such as is given in environment 1A00, or atemplate can be edited (e.g., by a user).

FIG. 2 presents a user interface 200 for editing a scene or template asused in systems for generating multi-scene video clips based onconditional logic. As an option, one or more instances of user interface200 or any aspect thereof may be implemented in the context of thearchitecture and functionality of the embodiments described herein.Also, the user interface 200 or any aspect thereof may be implemented inany desired environment.

As shown in FIG. 2, the user interface comprises user interface widgetsto give a name to a scene (e.g., a text name or a URL), to identify atemplate, to describe a function (e.g., a meaningful name of the data tobe presented, a location for data to be composited into a scene, andpossibly a narration). Scenes can be edited using a UI similar to FIG.2. This UI (e.g., user interface 200) allows users to pick the templatethat they want to use as the base for the scene. As described earlier,exemplary systems include predefined templates, however users can modifythese predefined templates or create their own templates. Templates willbe available in a drop down box 202 for the user to select a suitabletemplate. Depending on the template the user selects, different,additional attributes can be provided. Such attributes will appear inthe UI as needed (i.e. when the user picks the template). In someembodiments, a template is recommended and/or automatically selectedbased on a scene condition. The name of a recommended template can bepopulated into the drop down box 202.

As shown, the predefined template “d3js” requests that the user alsoprovides a d3js function. This function will be called when the scenebased on the d3js template gets rendered. Any given template can providedata to populate the template's attributes fields. In some cases,template data needs to be in a specific format (e.g. the “Title Page”template requires a “title” and a “subtitle” to be present in the data).In some cases template data can be retrieved from and/or made accessiblevia a Web Service. For example, in the “Edit Scene” UI, the end userprovides the end point of this Web Service. When the video is started,the application will retrieve the data from these end points and putthem in the templates to generate the actual scenes. Scenes can alsohave (optional) narration, which will be synthesized as actual spokenwords during the displaying of the scene. Additionally, users specifyanimations and transitions. An “In Transition” specification determineshow the scene will begin to appear on the screen (e.g. Fade In, cube,shutters, etc.) and the “Out Transition” specification determines howthe scene will disappear from the screen (e.g. Fade Out).

FIG. 3 presents an editing screen 300 used for stitching together videoscenes when generating multi-scene video clips based on conditionallogic. As an option, one or more instances of editing screen 300 or anyaspect thereof may be implemented in the context of the architecture andfunctionality of the embodiments described herein. Also, the editingscreen 300 or any aspect thereof may be implemented in any desiredenvironment.

As shown in FIG. 3, the editing screen comprises an editing canvas 302.The canvas is initially populated with a scene flow that models all or aportion of a decision graph. In this example, the canvas has a rootnode, shown as node0 310, a decision function 305, a node1 311 that isentered based on a first evaluation value at decision function 305, anda node2 312 that is entered based on a second evaluation value atdecision function 305. The nodes can be annotated for ease of operationby the user. Strictly as an example, the root node is annotated with theflow name, node1 is annotated with the function “animatedTable,” andnode2 is annotated with the function “titleScreen.” As another example,the nodes can be annotated with a template ID or template name orhandle.

FIG. 4 depicts an example of a use model 400 implemented in systems thatgenerate multi-scene video clips based on a conditional logic graph. Asan option, one or more instances of use model 400 or any aspect thereofmay be implemented in the context of the architecture and functionalityof the embodiments described herein. Also, the use model 400 or anyaspect thereof may be implemented in any desired environment.

As shown in FIG. 4, the use model comprises an application of a userinterface 402, an application of the scene generator 404, and anapplication of the scene stitcher 406. In this flow, the user invokesthe user interface 402 to select a template (see operation 408), editthe scene (see operation 410), possibly including editing scene nodesand/or node attributes (see operation 412). In some embodiments, rulesand conditions are pre-populated in a deployed system. In otherembodiments or situations a user is given the option of editing rules(see operation 414) and/or editing conditions (see operation 416).

When the editing portion of the shown flow is complete, the scenegenerator commences, and a decision graph is processed. The processingof the rules and conditions (see operation 418) can proceed through mayiterations, so long as there are more nodes, edges, rules, andconditions to be evaluated (see decision 420).

The use model proceeds to the scene stitcher 406, which module assemblesthe scenes generated by the scene generator into a video. A narration isadded. When a narration is provided (e.g., see FIG. 2) for a given scene(e.g., using a particular template), the scene persists in the video atleast as long as it takes for the narration to be uttered (e.g., usingautomatic speech synthesis).

Additional Embodiments of the Disclosure Additional PracticalApplication Examples

FIG. 5 is a block diagram of a system for implementing all or portionsof any of the embodiments described herein.

As is shown and described in the foregoing, any of the disclosedtechniques can be used, singly or in combination for processing a usercredential to determine an initial search corpus based on the usercredential, then retrieving first information from the initial searchcorpus and using the first information to generate a first scene. Usingthe first information to evaluate a set of conditions depending from thefirst information, modules operate cooperatively to retrieve secondinformation based on an evaluation value of at least one of theconditions. Given a first scene and a second scene generated based onpresence or occurrence of some condition or conditions, then the firstscene and second scene can be stitched together to form a video.

One implementation of the foregoing is given as a block diagram of asystem to perform certain functions of a computer system. As an option,the present system 500 may be implemented in the context of thearchitecture and functionality of the embodiments described herein. Ofcourse, however, the system 500 or any operation therein may be carriedout in any desired environment. As shown, system 500 comprises at leastone processor and at least one memory, the memory serving to storeprogram instructions corresponding to the operations of the system. Asshown, an operation can be implemented in whole or in part using programinstructions accessible by a module. The modules are connected to acommunication path 505, and any operation can communicate with otheroperations over communication path 505. The modules of the system can,individually or in combination, perform method operations within system500. Any operations performed within system 500 may be performed in anyorder unless as may be specified in the claims. The embodiment of FIG. 5implements a portion of a computer system, shown as system 500,comprising a computer processor to execute a set of program codeinstructions (see module 510) and modules for accessing memory to holdprogram code instructions to perform: receiving a user credential (seemodule 520); determining an initial search corpus based on the usercredential (see module 530); retrieving first information from theinitial search corpus and using the first information to generate afirst scene (see module 540); using the first information to evaluate aset of conditions depending from the first information (see module 550);retrieving second information based on an evaluation value of at leastone of the conditions (see module 560); and using the second informationto generate a second scene (see module 570).

System Architecture Overview Additional System Architecture Examples

FIG. 6 depicts a block diagram of an instance of a computer system 600suitable for implementing embodiments of the present disclosure.Computer system 600 includes a bus 606 or other communication mechanismfor communicating information, which interconnects subsystems anddevices such as a processor 607, a system memory (e.g., main memory 608,or an area of random access memory RAM), a static storage device (e.g.,ROM 609), a storage device 610 (e.g., magnetic or optical), a datainterface 633, a communication interface 614 (e.g., modem or Ethernetcard), a display 611 (e.g., CRT or LCD), input devices 612 (e.g.,keyboard, cursor control), and an external data repository 631.

According to one embodiment of the disclosure, computer system 600performs specific operations by processor 607 executing one or moresequences of one or more instructions contained in system memory. Suchinstructions may be read into system memory from another computerreadable/usable medium such as a static storage device or a disk drive.In alternative embodiments, hard-wired circuitry may be used in place ofor in combination with software instructions to implement thedisclosure. Thus, embodiments of the disclosure are not limited to anyspecific combination of hardware circuitry and/or software. In oneembodiment, the term “logic” shall mean any combination of software orhardware that is used to implement all or part of the disclosure.

The term “computer readable medium” or “computer usable medium” as usedherein refers to any medium that participates in providing instructionsto processor 607 for execution. Such a medium may take many formsincluding, but not limited to, non-volatile media and volatile media.Non-volatile media includes, for example, optical or magnetic disks suchas disk drives or tape drives. Volatile media includes dynamic memorysuch as a RAM memory.

Common forms of computer readable media includes, for example, floppydisk, flexible disk, hard disk, magnetic tape, or any other magneticmedium; CD-ROM or any other optical medium; punch cards, paper tape, orany other physical medium with patterns of holes; RAM, PROM, EPROM,FLASH-EPROM, or any other memory chip or cartridge, or any othernon-transitory medium from which a computer can read data.

In an embodiment of the disclosure, execution of the sequences ofinstructions to practice the disclosure is performed by a singleinstance of the computer system 600. According to certain embodiments ofthe disclosure, two or more instances of computer system 600 coupled bya communications link 615 (e.g., LAN, PTSN, or wireless network) mayperform the sequence of instructions required to practice the disclosurein coordination with one another. Such sequences can be organized to beaccessed by one or more processing entities configured to execute asingle process or configured to execute multiple concurrent processes toperform work. A processing entity can be hardware-based (e.g., involvingone or more cores) or software-based or can be formed of a combinationof hardware and software and can carry out computations or processingsteps implemented using one or more processes, and/or one or more tasksand/or one or more threads or any combination therefrom.

Computer system 600 may transmit and receive messages, data, andinstructions including programs (e.g., application code), throughcommunications link 615 and communication interface 614. Receivedprogram code may be executed by processor 607 as it is received and/orstored in storage device 610 or any other non-volatile storage for laterexecution. Computer system 600 may communicate through a data interface633 to a database 632 on an external data repository 631. Data items indatabase 632 can be accessed using a primary key (e.g., a relationaldatabase primary key). A module as used herein can be implemented usingany mix of any portions of the system memory and any extent ofhard-wired circuitry including hard-wired circuitry embodied as aprocessor 607. Some embodiments include one or more special-purposehardware components (e.g., power control, logic, sensors, etc.).

Returning to the environment of FIG. 1A, the environment includescomponents with which various systems can be implemented. Not all of thecomponents shown may be required to practice the embodiments, andvariations in the arrangement and type of the components may be madewithout departing from the spirit or scope of the disclosure.

The environment of FIG. 1A may include local area networks (LANs)/widearea networks (WANs), a wireless network, and client devices. Theoverall network including any sub-networks and/or wireless networks arein communication with, and enables communication between each of thecomponents the environment.

Instances of client devices may include virtually any computing devicecapable of communicating over a network to send and receive information,including instant messages, performing various online activities or thelike. It should be recognized that more or fewer client devices may beincluded within a system such as described herein, and embodiments aretherefore not constrained by the number or type of client devicesemployed.

Devices that may operate as client devices may include devices that canconnect using a wired or wireless communications medium such as personalcomputers, servers, multiprocessor systems, microprocessor-based orprogrammable consumer electronics, network PCs or the like. In someembodiments, client devices may include virtually any portable computingdevice capable of connecting to another computing device and receivinginformation such as a laptop computer, a smart phone, a tablet computer,or the like. Portable or mobile computer devices may also include oroperate in conjunction with other portable devices such as cellulartelephones, display pagers, radio frequency (RF) devices, infrared (IR)devices, personal digital assistants (PDAs), handheld computers,wearable computers integrated devices combining one or more of thepreceding devices and the like. As such, client devices can range widelyin terms of capabilities and features. Moreover, client devices mayprovide access to various computing applications including a browser orother web-based applications. A web-enabled client device may include abrowser application that is configured to receive and to send web pages,web-based messages and the like. The browser application may beconfigured to receive and display graphics, text, multimedia and thelike, employing virtually any web-based language including a wirelessapplication protocol (WAP) messages and the like. In one embodiment, thebrowser application is enabled to employ handheld device markup language(HDML), wireless markup language (WML), WMLScript, JavaScript, standardgeneralized markup language (SGML), HyperText markup language (HTML),eXtensible markup language (XML) and the like, to display and send amessage. In one embodiment, a user of the client device may employ thebrowser application to perform various activities over a network(online). However, another application may also be used to performvarious online activities.

Client devices may include at least one client application that isconfigured to receive and/or send data between another computing device.The client application may include a capability to provide send and/orreceive content or the like. The client application may further provideinformation that identifies itself including a type, capability, name orthe like. In one embodiment, a client device may uniquely identifyitself through any of a variety of mechanisms including a phone number,mobile identification number (MIN), an electronic serial number (ESN),or other mobile device identifier. The information may also indicate acontent format that the mobile device is enabled to employ. Suchinformation may be provided in a network packet or the like, sentbetween other client devices, or sent between other computing devices.

Client devices may be further configured to include a client applicationthat enables an end-user to log into an end-user account that may bemanaged by another computing device. Such end-user accounts, in onenon-limiting example, may be configured to enable the end-user to manageone or more online activities including, in one non-limiting example,search activities, social networking activities, browse variouswebsites, communicate with other users, participate in gaming, interactwith various applications or the like. However, participation in onlineactivities may also be performed without logging into the end-useraccount.

A wireless communication capability is configured to couple clientdevices and other components with network. Wireless network may includeany of a variety of wireless sub-networks that may further overlaystand-alone and/or ad-hoc networks and the like, to provide aninfrastructure-oriented connection for client devices. Such sub-networksmay include mesh networks, wireless LAN (WLAN) networks, cellularnetworks and the like. In one embodiment, the system may include morethan one wireless network.

A wireless network may further include an autonomous system ofterminals, gateways, routers and the like, connected by wireless radiolinks and the like. These connectors may be configured to move freelyand randomly and organize themselves arbitrarily such that the topologyof a wireless network may change rapidly. A wireless network may furtheremploy a plurality of access technologies including AMPS and/or secondgeneration (2G), and/or third generation (3G), and/or fourth generation(4G) generation radio access for cellular systems, WLAN, wireless router(WR) mesh and the like. The foregoing access technologies as well asemerging and/or future access technologies may enable wide area coveragefor mobile devices such as client devices with various degrees ofmobility. In one non-limiting example, wireless network may enable aradio connection through a radio network access such as a global systemfor mobile (GSM) communication, general packet radio services (GPRS),enhanced data GSM environment (EDGE), wideband code division multipleaccess (WCDMA) and the like. A wireless network may include any wirelesscommunication mechanism by which information may travel between clientdevices and/or between another computing device or network.

Any of the foregoing networks can be configured to couple networkdevices with other computing devices and communication can includecommunicating between the Internet. In some situations communication iscarried out using combinations of LANs, WANs, as well as directconnections such as through a universal serial bus (USB) port, otherforms of computer readable media. On an interconnected set of LANs,including those based on differing architectures and protocols, a routeracts as a link between LANs, enabling messages to be sent from one toanother. In addition, communication links within LANs may includetwisted wire pair or coaxial cable, while communication links betweennetworks may use analog telephone lines, full or fractional dedicateddigital lines including T1, T2, T3, and T4, and/or other carriermechanisms including, for example, E-carriers, integrated servicesdigital networks (ISDNs), digital subscriber lines (DSLs), wirelesslinks including satellite links, or other communications links known tothose skilled in the art. Moreover, communication links may furtheremploy any of a variety of digital signaling technologies including,without limit, for example, DS-0, DS-1, DS-2, DS-3, DS-4, OC-3, OC-12,OC-48 or the like. Furthermore, remote computers and other relatedelectronic devices could be remotely connected to either LANs or WANsvia a modem and temporary telephone link. In one embodiment, networksmay be configured to transport information of an Internet protocol (IP).In some cases, communication media carries computer readableinstructions, data structures, program modules, or other transportmechanism and includes any information delivery media. By way ofexample, communication media includes wired media such as twisted pair,coaxial cable, fiber optics, wave guides, and other wired media andwireless media such as acoustic, RF, infrared, and other wireless media.

In the foregoing specification, the disclosure has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the disclosure. Forexample, the above-described process flows are described with referenceto a particular ordering of process actions. However, the ordering ofmany of the described process actions may be changed without affectingthe scope or operation of the disclosure. The specification and drawingsare, accordingly, to be regarded in an illustrative sense rather than ina restrictive sense.

What is claimed is:
 1. A system to generate a video comprising aplurality of scenes comprising: a database having a set of storagedevices to hold a set of data records to form a plurality of searchcorpora, at least a portion of the search corpora accessible based on auser credential; one or more processors corresponding to a plurality ofprocessing entities associated with respective portions of programmemory; a memory segment being accessible by an address provided by oneor more concurrently executing processing entities; a processor thatexecutes a sequence of instructions which, when executed by theprocessor causes the processor to execute a process, the processcomprising: analyzing information from the portion of the search corporaor from a second search corpus to determine at least one attributepertaining to the information; evaluating a scene condition of a scene,the scene condition based at least in part on the attribute; determininga content of a next scene of the plurality of scenes based at least inpart on a value obtained by evaluating the scene condition; generatingthe next scene of the plurality of scenes such that the next scenecomprises the content; and assembling at least the scene and the nextscene into the video.
 2. The system of claim 1, wherein the next sceneof the plurality of scenes is determined based at least in part on aprevious scene.
 3. The system of claim 1, wherein the process executedby the processor further comprises determining a user role of a userbased on the user credential.
 4. The system of claim 3, wherein theportion of the search corpora is determined based at least in part onthe user role.
 5. The system of claim 3, wherein the portion of thesearch corpora is determined based at least in part on a user profilecorresponding to the user role.
 6. The system of claim 1, wherein the atleast one aspect of the information is determined using a keyperformance indicator.
 7. The system of claim 1, further comprising atemplate editor configured to read from a plurality of templates.
 8. Thesystem of claim 7, wherein a particular template is selected based atleast in part on the scene condition.
 9. The system of claim 1, furthercomprising a graph processor configured to process nodes, edges, andconditions when determining the next scene.
 10. The system of claim 9,further comprising a sequence stitcher configured to receive commandsfrom the graph processor when generating the video.
 11. A method togenerate a video comprising a plurality of scenes comprising: accessinga set of storage devices to hold a set of data records to form aplurality of search corpora, at least a portion of the search corporaaccessible based on a user credential; analyzing information from theportion of the search corpora or from a second search corpus todetermine at least one attribute pertaining to the information;evaluating a scene condition of a scene, the scene condition based atleast in part on the attribute; determining a content of a next scene ofthe plurality of scenes based at least in part on a value obtained byevaluating the scene condition; generating the next scene of theplurality of scenes such that the next scene comprises the content; andassembling at least the scene and the next scene into the video.
 12. Themethod of claim 11, wherein the next scene of the plurality of scenes isdetermined based at least in part on a previous scene.
 13. The method ofclaim 11, further comprising determining a user role of a user based onthe user credential.
 14. The method of claim 13, wherein the portion ofthe search corpora is determined based at least in part on the userrole.
 15. The method of claim 13, wherein the portion of the searchcorpora is determined based at least in part on a user profilecorresponding to the user role.
 16. The method of claim 11, wherein theat least one aspect of the information is determined using a keyperformance indicator.
 17. The method of claim 11, further comprisingconfiguring a template editor to read from a plurality of templates. 18.The method of claim 17, wherein a particular template is selected fromthe plurality of templates based at least in part on a scene condition.19. A computer program product to generate a video comprising aplurality of scenes, embodied in a non-transitory computer readablemedium, the computer readable medium having stored thereon a sequence ofinstructions which, when executed by a processor causes the processor toexecute a process, the process comprising: accessing a set of storagedevices to hold a set of data records to form a plurality of searchcorpora, at least a portion of the search corpora accessible based on auser credential; analyzing information from the portion of the searchcorpora or from a second search corpus to determine at least oneattribute pertaining to the information; evaluating a scene condition ofa scene, the scene condition based at least in part on the attribute;determining a content of a next scene of the plurality of scenes basedat least in part on a value obtained by evaluating the scene condition;generating the next scene of the plurality of scenes such that the nextscene comprises the content; and assembling at least the scene and thenext scene into the video.
 20. The computer program product of claim 19,wherein the next scene of the plurality of scenes is determined based atleast in part on a previous scene.